package entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;

import javax.persistence.*;

@Entity
@Table(name="Facturas")
public class Factura implements Serializable{

	private static final long serialVersionUID = 1L;
	

	private int numero;
	private Mesa mesa;
	private Mozo mozo;
	private int cantidadPersonas;
	private Float total;
	private Date fecha;
	private Collection<ItemFactura> itemsFactura;
	
	public Factura(int numero, Mesa mesa, Mozo mozo, int cantidadPersonas,
			Float total, Date fecha, Collection<ItemFactura> itemsFactura) {
		super();
		this.numero = numero;
		this.mesa = mesa;
		this.mozo = mozo;
		this.cantidadPersonas = cantidadPersonas;
		this.total = total;
		this.fecha = fecha;
		this.itemsFactura = itemsFactura;
	}

	public Factura() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	@Id
	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}
	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name="idMesa")
	public Mesa getMesa() {
		return mesa;
	}

	public void setMesa(Mesa mesa) {
		this.mesa = mesa;
	}
	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumns({
		@JoinColumn(name="tipoDoc"),
		@JoinColumn(name="numeroDoc")
	})
	public Mozo getMozo() {
		return mozo;
	}

	public void setMozo(Mozo mozo) {
		this.mozo = mozo;
	}

	public int getCantidadPersonas() {
		return cantidadPersonas;
	}

	public void setCantidadPersonas(int cantidadPersonas) {
		this.cantidadPersonas = cantidadPersonas;
	}

	public Float getTotal() {
		return total;
	}

	public void setTotal(Float total) {
		this.total = total;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	@OneToMany(cascade = CascadeType.ALL)
	@JoinColumn(name="numero")
	public Collection<ItemFactura> getItemsFactura() {
		return itemsFactura;
	}

	public void setItemsFactura(Collection<ItemFactura> itemsFactura) {
		this.itemsFactura = itemsFactura;
	}
	
}
